package qiyu.live.gift.provider.service;

import qiyu.live.gift.dto.RedPacketReceiveDTO;
import qiyu.live.gift.provider.dao.po.RedPacketConfigPO;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-11-12
 * Time: 16:44
 */
public interface IRedPacketConfigService {

    /**
     * 根据主播id查询红包配置表-->我们是以主播id为维度进行红包配置的
     *
     * @param anchorId 主播id
     * @return 返回主播id配置的红包配置表
     */
    RedPacketConfigPO queryRedPacketConfigByAnchorId(Integer anchorId);

    /**
     * 插入相关红包配置
     *
     * @param redPacketConfigPO 红包配置表po对象
     * @return 返回是否插入成功
     */
    boolean insertOne(RedPacketConfigPO redPacketConfigPO);

    /**
     * 更新红包雨配置表的信息
     *
     * @param redPacketConfigPO 红包雨配置PO
     * @return 返回是否更新成功
     */
    boolean updateById(RedPacketConfigPO redPacketConfigPO);

    /**
     * 根据主播id生成红包数据保存到redis中,将来领取数据直接 redis 的pop
     * 初始化红包雨,提前生成红包数据
     *
     * @param anchorId 主播id
     * @return 返回是否成功
     */
    boolean prepareRedPacket(Integer anchorId);

    /**
     * 领取红包
     *
     * @param code 红包雨业务code
     * @return 返回领取的红包金额
     */
    RedPacketReceiveDTO redPacketReceive(String code);
}